
(define (whitespace-token start len tok)
  #f)

(define (symbol-token start len tok)
  (make-token 'symbol start len (string->symbol tok)))

(define (number-token start len tok)
  (make-token 'number start len (string->number tok)))

(define (boolean-token start len tok)
  (cond
   ((equal? tok "#t") (make-token 'boolean start len #t))
   ((equal? tok "#f") (make-token 'boolean start len #f))
   (else (error "invalid boolean token" (make-token start len tok)))))

(define (character-token start len tok)
  ;; TODO
  (make-token 'character start len tok))

(define (string-token start len tok)
  (make-token 'string start len tok))

(define (quote-mark-token start len tok)
  (make-token 'quote start len))

(define (unquote-mark-token start len tok)
  (make-token 'unquote start len))

(define (quasiquote-mark-token start len tok)
  (make-token 'quasiquote start len))

(define (dot-token start len tok)
  (make-token 'dot start len))

(define (open-token start len tok)
  (make-token 'open start len))

(define (close-token start len tok)
  (make-token 'close start len))
